package com.smartfast4j.backend.common.redis;

import java.util.Set;

public interface JedisClient {

	String get(String key);
	byte[] get(byte[] key);

	String set(String key, String value);
	byte[] set(byte[] key,byte[] value);
	byte[] set(byte[] key,byte[] value,int expire);

	String hget(String hkey, String key);
	long hset(String hkey, String key, String value);
	long incr(String key);
	long expire(String key, int second);
	long ttl(String key);
	long del(String key);
	long hdel(String hkey, String key);

	// 保存byte类型数据
	void setObject(byte[] key, byte[] value);

	// 获取byte类型数据
	byte[] getObject(byte[] key);

	long del(byte[] key);

	<T> void setObject(String key, T obj);

	<T> T getObject(String key, Class<T> clazz);

	/**
	 * 获取所有的key
	 * @param pattern
	 * @return
	 */
	Set<byte[]> keys(String pattern);

	/**
	 * 清空数据
	 */
	void flushDB();

	/**
	 * 获取DB的大小
	 * @return
	 */
	Long dbSize();
}
